本发明公开了一种基于网络按需距离矢量多播路由方法及系统。该方法包括如下步骤:多播组组长为下游节点分配分支号;基于分支号,多播组成员节点建立各自的主路径和备用路径;判断主路径是否失效,若否,基于主路径进行数据传输;若是,在备用路径没有失效的情况下,使用备用路径进行数据传输;在备用路径失效的情况下,进行路由的修复,并返回执行主、备路径建立步骤。本发明利用建立的备用分支信息维护多播树结构,提高了协议的鲁棒性和可靠性,减少了路由请求的发起次数,降低了多播数据分组的投递时延,从而保证了移动性较强的无线自组织网络的多播路由质量。
1.一种基于网络按需距离矢量的多播路由方法,其特征在于,包括如下步骤:分支号分配步骤,多播组组长为下游节点分配分支号;主、备路径建立步骤,基于分支号,多播组成员节点建立各自的主路径和备用路径;数据传输步骤,判断主路径是否失效,若否,基于主路径进行数据传输;若是,在备用路径没有失效的情况下,使用备用路径进行数据传输;在备用路径失效的情况下,进行路由的修复,并返回执行主、备路径建立步骤。
2.根据权利要求1所述的多播路由方法,其特征在于,所述主、备路径建立步骤和所述数据传输步骤之间,还设置有:备用路由表添加步骤,基于备用路径,添加备用路由表,所述备用路由表用于维护备用路径的信息,包含多播组地址、多播组组长地址、多播组序列号、路由状态、多播树邻居链表及分支号;由此,多播树上每一节点需维护四张路由表,所述四张路由表分别为单播路由表、多播路由表、组领导表和备用路由表;控制消息修改步骤,修改MACT_J消息,在原MACT_J消息的基础上增加一个B标识,当B标识置1时即为MACT_B消息,新加入多播组的组成员节点利用MACT_B消息通知所选备用路径的备用路径身份,使组成员选择节点不相交的备用路径。
3.根据权利要求1或2所述的多播路由方法,其特征在于,所述分支号分配步骤为,当节点想要加入多播组时,发送RREQ_J消息发起加入多播组请求;多播组成员或具有到多播组成员路由的节点响应RREQ_J请求消息,在响应路由请求消息的过程中实现分支号的分配;具体包括:多播组组长在接收到请求加入多播组的成员节点所发送的RREQ_J消息后,生成一个分支号给请求节点;多播树上的其他节点在响应RREQ_J消息时,将自己所在分支的分支号通过RREP_J消息传递给所述请求节点,所述请求节点从RREP_J消息中获取分支号信息,并将该分支号信息记录在自己的多播路由表中。
4.根据权利要求3所述的多播路由方法,其特征在于,所述主、备路径建立步骤进一步为:当请求加入多播组的成员节点接收到RREP_J消息之后,查看所述多播路由表中是否已经存在主路径,如果不存在,则将RREP_J中携带的路径保存为主路径,如果主路径已经存在,则将所述RREP_J消息中携带的路径信息与多播路由表中保存的主路径信息进行比较,比较的内容包括:1)组长地址;2)多播序列号;3)到多播树的跳数;4)到组长的跳数;上述内容按从上到下优先级递减的顺序进行比较,以组长地址较大、多播序列号较大、到多播树跳数较少、到组长的跳数较少为较优信息;如果RREP_J消息中携带的信息优于主路径,则将RREP_J保存为新的主路径,将原来的主路径保存为备用路径;同时,若原来存在备用路径,则删除该备用路径;如果主路径的信息较优,则判断RREP_J消息中携带的分支号与主路径中是否相同,相同则将RREP_J消息丢弃;如果不相同,则查看备用路由表是否为空,如果为空,则将RREP_J消息的传播路径保存为备用路径,否则将RREP_J消息与备用分支信息进行比较;如果RREP_J消息携带信息较优,则将RREP_J消息保存为备用路径,同时删除原备用路径,否则将RREP_J消息丢弃;RREP_J等待时间到期后,节点向主路径分支反向单播一个MACT_J消息,用于激活主路径分支,进行多播数据传输,同时向备用路径分支反向单播一个MACT_B消息,用于通知备用路径的节点保存备用路径信息;MACT_J消息将主路径激活开始数据传输,而MACT_B消息通知备用路径上的节点存储备用路径信息,以备主路径失效时备用路径的激活使用。
5.一种基于网络按需距离矢量的多播路由系统,其特征在于,包括:分支号分配模块,用于多播组组长为下游节点分配分支号;主、备路径建立模块,用于基于分支号,多播组成员节点建立各自的主路径和备用路径;数据传输模块,用于判断主路径是否失效,若否,基于主路径进行数据传输;若是,在备用路径没有失效的情况下,使用备用路径进行数据传输;在备用路径失效的情况下,进行路由的修复。
6.根据权利要求5所述的多播路由系统,其特征在于,所述主、备路径建立模块和所述数据传输模块之间,还连接有:备用路由表添加模块,用于基于备用路径,添加备用路由表,所述备用路由表用于维护备用路径的信息,包含多播组地址、多播组组长地址、多播组序列号、路由状态、多播树邻居链表及分支号;由此,多播树上每一节点需维护四张路由表,所述四张路由表分别为单播路由表、多播路由表、组领导表和备用路由表;控制消息修改模块,修改MACT_J消息,在原MACT_J消息的基础上增加一个B标识,当B标识置1时即为MACT_B消息,新加入多播组的组成员节点利用MACT_B消息通知所选备用路径的备用路径身份,使组成员选择节点不相交的备用路径。
7.根据权利要求5或6所述的多播路由系统,其特征在于,所述分支号分配模块进一步用于:当节点想要加入多播组时,发送RREQ_J消息发起加入多播组请求;多播组成员或具有到多播组成员路由的节点响应RREQ_J请求消息,在响应路由请求消息的过程中实现分支号的分配;具体为:多播组组长在接收到请求加入多播组的成员节点所发送的RREQ_J消息后,生成一个分支号给请求节点;多播树上的其他节点在响应RREQ_J消息时,将自己所在分支的分支号通过RREP_J消息传递给所述请求节点,所述请求节点从RREP_J消息中获取分支号信息,并将该分支号信息记录在自己的多播路由表中。
8.根据权利要求7所述的多播路由系统,其特征在于,所述主、备路径建立模块进一步用于:基于所述四张路由表和修改的所述MACT_J消息,进行备用路径的选择与建立;当请求加入多播组的成员节点接收到RREP_J消息之后,查看所述多播路由表中是否已经存在主路径,如果不存在,则将RREP_J中携带的路径保存为主路径,如果主路径已经存在,则将所述RREP_J消息中携带的路径信息与多播路由表中保存的主路径信息进行比较,比较的内容包括:1)组长地址;2)多播序列号;3)到多播树的跳数;4)到组长的跳数;上述内容按从上到下优先级递减的顺序进行比较,以组长地址较大、多播序列号较大、到多播树跳数较少、到组长的跳数较少为较优信息;如果RREP_J消息中携带的信息优于主路径,则将RREP_J保存为新的主路径,将原来的主路径保存为备用路径;同时,若原来存在备用路径,则删除该备用路径;如果主路径的信息较优,则判断RREP_J消息中携带的分支号与主路径中是否相同,相同则将RREP_J消息丢弃;如果不相同,则查看备用路由表是否为空,如果为空,则将RREP_J消息的传播路径保存为备用路径,否则将RREP_J消息与备用分支信息进行比较;如果RREP_J消息携带信息较优,则将RREP_J消息保存为备用路径,同时删除原备用路径,否则将RREP_J消息丢弃;RREP_J等待时间到期后,节点向主路径分支反向单播一个MACT_J消息,用于激活主路径分支,进行多播数据传输,同时向备用路径分支反向单播一个MACT_B消息,用于通知备用路径的节点保存备用路径信息;MACT_J消息将主路径激活开始数据传输,而MACT_B消息通知备用路径上的节点存储备用路径信息,以备主路径失效时备用路径的激活使用。
技术领域本发明涉及无线自组织网络技术领域,尤其涉及一种基于网络按需距离矢量多播路由方法及系统。
背景技术无线自组网是一种复杂的分布式网络系统,由于其自组织、无需固定基础设施、节点可移动以及良好的抗毁性等优点而在军事指挥、紧急救援等军用和民用领域得以广泛应用。多播作为一种一点对多点或多点对多点的通信方式,具有较高的分组发送和传播效率。由于无线自组网的应用场合常常要求支持多播业务,因此对无线自组网的多播路由协议进行研究显得尤为重要。然而,无线自组网分布式、网络拓扑变化、带宽有限等固有特点,使得实现多播路由协议具有很大的挑战。当前无线自组网的多播路由协议大多数只考虑如何实现有效的通信路由,对于保证QoS等其他因素考虑得较少。MAODV(网络按需距离矢量多播路由协议,Multicastxa0Adxa0Hocxa0On-Demandxa0Multipathxa0Distancexa0Vector)作为一种基于树结构的多播路由协议,具有很高的分组转发效率,但由于节点间只有一条链路,在网络移动性较强的情况下,树结构容易遭到破坏。
发明内容本发明的目的在于提供一种基于网络按需距离矢量多播路由方法及系统,以提高协议的分组投递率、时延等多方面的性能,进而使得路由协议能够适应移动性较强的网络。本发明公开了一种基于网络按需距离矢量多播路由方法,包括如下步骤:分支号分配步骤,多播组组长为下游节点分配分支号;主、备路径建立步骤,基于分支号,多播组成员节点建立各自的主路径和备用路径;数据传输步骤,判断主路径是否失效,若否,基于主路径进行数据传输;若是,在备用路径没有失效的情况下,使用备用路径进行数据传输;在备用路径失效的情况下,进行路由的修复,并返回执行主、备路径建立步骤。上述多播路由方法,优选所述主、备路径建立步骤和所述数据传输步骤之间,还设置有:备用路由表添加步骤和控制消息修改步骤。其中,备用路由表添加步骤用于基于备用路径,添加备用路由表,所述备用路由表用于维护备用路径的信息,包含多播组地址、多播组组长地址、多播组序列号、路由状态、多播树邻居链表及分支号;由此,多播树上每一节点需维护四张路由表,所述四张路由表分别为单播路由表、多播路由表、组领导表和备用路由表;控制消息修改步骤,修改MACT_J消息,在原MACT_J消息的基础上增加一个B标识,当B标识置1时即为MACT_B消息,新加入多播组的组成员节点利用MACT_B消息通知所选备用路径的备用路径身份,使组成员选择节点不相交的备用路径。上述多播路由方法,优选所述分支号分配步骤为,当节点想要加入多播组时,发送RREQ_J消息发起加入多播组请求;多播组成员或具有到多播组成员路由的节点响应RREQ_J请求消息,在响应路由请求消息的过程中实现分支号的分配;具体包括:多播组组长在接收到请求加入多播组的成员节点所发送的RREQ_J消息后,生成一个分支号给请求节点;多播树上的其他节点在响应RREQ_J消息时,将自己所在分支的分支号通过RREP_J消息传递给所述请求节点,所述请求节点从RREP_J消息中获取分支号信息,并将该分支号信息记录在自己的多播路由表中。上述多播路由方法,优选所述主、备路径建立步骤进一步为:当请求加入多播组的成员节点接收到RREP_J消息之后,查看所述多播路由表中是否已经存在主路径,如果不存在,则将RREP_J中携带的路径保存为主路径,如果主路径已经存在,则将所述RREP_J消息中携带的路径信息与多播路由表中保存的主路径信息进行比较,比较的内容包括:1)组长地址;2)多播序列号;3)到多播树的跳数;4)到组长的跳数;上述内容按从上到下优先级递减的顺序进行比较,以组长地址较大、多播序列号较大、到多播树跳数较少、到组长的跳数较少为较优信息;如果RREP_J消息中携带的信息优于主路径,则将RREP_J保存为新的主路径,将原来的主路径保存为备用路径;同时,若原来存在备用路径,则删除该备用路径;如果主路径的信息较优,则判断RREP_J消息中携带的分支号与主路径中是否相同,相同则将RREP_J消息丢弃;如果不相同,则查看备用路由表是否为空,如果为空,则将RREP_J消息的传播路径保存为备用路径,否则将RREP_J消息与备用分支信息进行比较;如果RREP_J消息携带信息较优,则将RREP_J消息保存为备用路径,同时删除原备用路径,否则将RREP_J消息丢弃;RREP_J等待时间到期后,节点向主路径分支反向单播一个MACT_J消息,用于激活主路径分支,进行多播数据传输,同时向备用路径分支反向单播一个MACT_B消息,用于通知备用路径的节点保存备用路径信息;MACT_J消息将主路径激活开始数据传输,而MACT_B消息通知备用路径上的节点存储备用路径信息,以备主路径失效时备用路径的激活使用。另一方面,本发明还公开了一种基于网络按需距离矢量多播路由系统,包括:分支号分配模块、主、备路径建立模块和数据传输模块。其中,分支号分配模块用于多播组组长为下游节点分配分支号;主、备路径建立模块用于基于分支号,多播组成员节点建立各自的主路径和备用路径;数据传输模块用于判断主路径是否失效,若否,基于主路径进行数据传输;若是,在备用路径没有失效的情况下,使用备用路径进行数据传输;在备用路径失效的情况下,进行路由的修复。上述多播路由系统,优选所述主、备路径建立模块和所述数据传输模块之间,还连接有备用路由表添加模块和控制消息修改模块,其中,备用路由表添加模块用于基于备用路径添加备用路由表,所述备用路由表用于维护备用路径的信息,包含多播组地址、多播组组长地址、多播组序列号、路由状态、多播树邻居链表及分支号;由此,多播树上每一节点需维护四张路由表,所述四张路由表分别为单播路由表、多播路由表、组领导表和备用路由表;控制消息修改模块用于修改MACT_J消息,在原MACT_J消息的基础上增加一个B标识,当B标识置1时即为MACT_B消息,新加入多播组的组成员节点利用MACT_B消息通知所选备用路径的备用路径身份,使组成员选择节点不相交的备用路径。上述多播路由系统,优选所述分支号分配模块进一步用于:当节点想要加入多播组时,发送RREQ_J消息发起加入多播组请求;多播组成员或具有到多播组成员路由的节点响应RREQ_J请求消息,在响应路由请求消息的过程中实现分支号的分配;具体为:多播组组长在接收到请求加入多播组的成员节点所发送的RREQ_J消息后,生成一个分支号给请求节点;多播树上的其他节点在响应RREQ_J消息时,将自己所在分支的分支号通过RREP_J消息传递给所述请求节点,所述请求节点从RREP_J消息中获取分支号信息,并将该分支号信息记录在自己的多播路由表中。上述多播路由系统,优选所述主、备路径建立模块进一步用于:基于所述四张路由表和修改的所述MACT_J消息,进行备用路径的选择与建立;当请求加入多播组的成员节点接收到RREP_J消息之后,查看所述多播路由表中是否已经存在主路径,如果不存在,则将RREP_J中携带的路径保存为主路径,如果主路径已经存在,则将所述RREP_J消息中携带的路径信息与多播路由表中保存的主路径信息进行比较,比较的内容包括:1)组长地址;2)多播序列号;3)到多播树的跳数;4)到组长的跳数;上述内容按从上到下优先级递减的顺序进行比较,以组长地址较大、多播序列号较大、到多播树跳数较少、到组长的跳数较少为较优信息;如果RREP_J消息中携带的信息优于主路径,则将RREP_J保存为新的主路径,将原来的主路径保存为备用路径;同时,若原来存在备用路径,则删除该备用路径;如果主路径的信息较优,则判断RREP_J消息中携带的分支号与主路径中是否相同,相同则将RREP_J消息丢弃;如果不相同,则查看备用路由表是否为空,如果为空,则将RREP_J消息的传播路径保存为备用路径,否则将RREP_J消息与备用分支信息进行比较;如果RREP_J消息携带信息较优,则将RREP_J消息保存为备用路径,同时删除原备用路径,否则将RREP_J消息丢弃;RREP_J等待时间到期后,节点向主路径分支反向单播一个MACT_J消息,用于激活主路径分支,进行多播数据传输,同时向备用路径分支反向单播一个MACT_B消息,用于通知备用路径的节点保存备用路径信息;MACT_J消息将主路径激活开始数据传输,而MACT_B消息通知备用路径上的节点存储备用路径信息,以备主路径失效时备用路径的激活使用。本发明利用分支号信息进行多播树结构的维护和路由信息备份。在网络移动性较强的情况下,多播树结构容易遭到破坏,当主用分支发生断链时,利用建立的备用分支信息维护多播树结构,提高了协议的鲁棒性和可靠性,减少了路由请求的发起次数,降低了多播数据分组的投递时延,从而保证了移动性较强的无线自组织网络的多播路由质量。
附图说明图1为本发明基于网络按需距离矢量多播路由方法的步骤流程图;图2a是备用分支的选择过程实例;图2b是备用分支的选择过程实例;图3是分组投递率比较示意图;图4是分组端到端的平均时延比较示意图;图5是控制分组开销比较的比较示意图;图6为本发明基于网络按需距离矢量多播路由系统实施例的结构示意图;图7为本发明基于网络按需距离矢量多播路由系统另一实施例的结构示意图。
具体实施方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明设计的核心原则是为多播树建立备用分支以提高协议性能。在多播树构造期间,请求加入多播树的多播组成员根据接收到的多个RREP_J回复消息建立并激活主、备两条路径,备用路径的选择基于分布式的特点,保证主路径与备用路径间节点不相交。参照图1,图1为本发明基于网络按需距离矢量多播路由方法的步骤流程图,包括:分支号分配步骤S110,多播组组长为下游节点分配分支号;主、备路径建立步骤S120,基于分支号,多播组成员节点建立各自的主路径和备用路径;数据传输步骤S130,判断主路径是否失效,若否,基于主路径进行数据传输;若是,在备用路径没有失效的情况下,使用备用路径进行数据传输;在备用路径失效的情况下,进行路由的修复,并返回执行主、备路径建立步骤。在一个实施例中,主、备路径建立步骤和所述数据传输步骤之间,还设置有备用路由表添加步骤和控制消息修改步骤。其中,备用路由表添加步骤基于备用路径,添加备用路由表,所述备用路由表用于维护备用路径的信息,包含多播组地址、多播组组长地址、多播组序列号、路由状态、多播树邻居链表及分支号;由此,多播树上每一节点需维护四张路由表,所述四张路由表分别为单播路由表、多播路由表、组领导表和备用路由表;控制消息修改步骤修改MACT_J消息,在原MACT_J消息的基础上增加一个B标识,当B标识置1时,即为MACT_B消息,新加入多播组的组成员节点利用MACT_B消息通知所选备用路径其备用路径身份。并且,分支号分配步骤具体为:多播组组长在接收到请求加入多播组的成员节点所发送的RREQ_J消息后,生成一个分支号给请求节点;多播树上的其他节点在响应RREQ_J消息时,将自己所在分支的分支号通过RREP_J消息传递给所述请求节点,所述请求节点从RREP_J消息中获取分支号信息,并将该分支号信息记录在自己的多播路由表中。所述主、备路径建立步骤进一步为:当请求加入多播组的成员节点接收到RREP_J消息之后,查看所述多播路由表中是否已经存在主路径,如果不存在,则将RREP_J中携带的路径保存为主路径,如果主路径已经存在,则将所述RREP_J消息中携带的路径信息与多播路由表中保存的主路径信息进行比较,比较的内容包括:组长地址、多播序列号、到多播树的跳数和到组长的跳数。上述内容按从上到下优先级递减的顺序进行比较,以组长地址较大、多播序列号较大、到多播树跳数较少、到组长的跳数较少为较优信息;如果RREP_J消息中携带的信息优于主路径,则将RREP_J保存为新的主路径,将原来的主路径保存为备用路径;同时,若原来存在备用路径,则删除该备用路径;如果主路径的信息较优,则判断RREP_J消息中携带的分支号与主路径中是否相同,相同则将RREP_J消息丢弃;如果不相同,则查看备用路由表是否为空,如果为空,则将RREP_J消息的传播路径保存为备用路径,否则将RREP_J消息与备用分支信息进行比较;如果RREP_J消息携带信息较优,则将RREP_J消息保存为备用路径,同时删除原备用路径,否则将RREP_J消息丢弃;RREP_J等待时间到期后,节点向主路径分支反向单播一个MACT_J消息,用于激活主路径分支,进行多播数据传输,同时向备用路径分支反向单播一个MACT_B消息,用于通知备用路径的节点保存备用路径信息。也就是说,多播树构造过程中,要加入多播组的成员节点泛洪RREQ_J消息,多播树上的节点接收到此RREQ_J消息后回复RREP_J消息,请求节点可能接收到来自多个成员节点的回复消息,请求节点从中选择序列号最新的、到组长距离最小的一条路径作为主路径分支,选择次优的一条路径作为备用路径分支。为了确保请求节点通过两条路径到组长的链路不存在相交部分,为多播路由表添加一个分支号表项,用于记录本节点所在树分支编号,在回复RREP_J消息中携带自身所在多播树树枝的分支号,因此请求节点在选择备用路径时,需要增加一条判断原则,选择分支号与主路径不相同的次优路径作为备用路径。换句话说,本发明需要基于网络按需距离矢量多播路由协议(MAODV)进行以下改进:1、备用路径的选择与建立首先,添加一个备用路由表。多播树上每个节点需维护四张路由表,所述四张路由表分别为单播路由表、多播路由表、组领导表和备用路由表,备用路由表用于维护备用的多播树分支信息,备用路由表结构类似于多播路由表,主要包含以下信息:多播组地址、多播组组长地址、多播组序列号、路由状态、多播树邻居链表及分支号等信息。其次,修改MACT_J消息。在原MACT_J消息的基础上增加一个B标识,当B标识置1时即为MACT_B消息,新加入多播组的组成员节点利用MACT_B消息通知所选备用路径的备用路径身份,使组成员选择节点不相交的备用路径。再次,生成分支号。分支号的添加用于实现节点不相交的多路径,在RREQ_J消息的接收处理中实现分支号的生成与传输。分支号由多播组组长生成,在树的构建过程中,多播组组长在接收到RREQ_J消息之后,会生成一个分支号给请求节点;树上的其他节点在响应RREQ_J消息时,将自己所在分支的分支号通过RREP_J消息传递给请求节点,请求节点从RREP_J消息中获取分支号信息记录在自己的多播路由表中。最后,基于四个路由表项和控制消息,进行备用分支的选择与建立。当请求加入多播组的节点广播RREQ_J消息之后,需要等待一段时间以接收RREP_J消息,请求节点接收到RREP_J消息之后,首先查看多播路由表中是否已经存在主路径分支,如果不存在则将其保存为主路径,如果主路径分支已经存在,则将RREP_J消息中携带的路径信息与多播路由表中保存的主路径分支信息进行比较,比较的内容包括:1)组长地址2)多播序列号3)到多播树的跳数4)到组长的跳数上述内容按从上到下优先级递减的顺序进行比较,以组长地址较大、多播序列号较大、到多播树跳数较少、到组长的跳数较少为较优信息。如果RREP_J消息中携带的信息优于主路径分支,则将RREP_J保存为新的主路径分支,将原来的主路径分支保存为备用路径分支,删除原来的备用路径分支(如果有的话)。如果主路径分支的信息较优,则判断RREP_J消息中携带的分支号与主路径中是否相同,相同则丢弃,如果不相同,则查看备用路由表是否为空,如果为空,则将RREP_J消息的传播路径保存为备用分支,否则将RREP_J消息与备用分支信息进行比较,比较内容同上,如果RREP_J消息携带信息较优,则将RREP_J消息保存为备用路径分支,同时删除原备用路径分支,否则将RREP_J消息丢弃。RREP_J等待时间到期后,节点向主路径分支反向单播一个MACT_J消息,用于激活主路径分支,进行多播数据传输,同时向备用路径分支反向单播一个MACT_B消息,用于通知备用路径分支的节点保存备用路径信息。2、路由维护改进在MAODV中,当多播树中发生断链现象后,断开链路的下游节点将广播RREQ_J消息,发起断链的修复工作。在所述多播路由中,断开链路的下游节点首先检查备用分支是否可用,如果备用分支可用,则沿备用分支发送路由激活消息MACT_J,使用备用分支传输多播数据分组,只有在主分支和备用分支都发生断链的情况下才发起RREQ_J消息,进行路由修复。图2a和图2b为备用分支的选择过程实例,L为多播树组长,它为D、B所在分支分配了分支号分别为1和2。节点A广播了RREQ_J消息之后,分别从节点B、C、F接收到回复的RREP_J消息,网络拓扑存在三条路径,分别为{LBA}{LBCA}{LDFA},A节点选择具有最小跳数的{LBA}作为主路径分支,向B单播一个MACT_J消息以激活主路径分支,路径{LDFA}和{LBCA}具有相同的跳数,但由于路径{LBCA}与主路径{LBA}处于同一多播分支,具有相同的分支号2,因此不能作为备用路径分支,因而选择路径{LDFA}作为备用路径,同时向F单播一个MACT_B消息,用于通知备用路径分支的节点保存备用路径信息。实施例使用网络仿真软件NS2对本发明和MAODV进行仿真分析,分别从分组投递率、分组端到端的平均传输时延以及控制分组开销三个方面对二者进行比较。如图3所示,随着节点运动速度的增加,两种算法的分组投递率都逐渐降低。这是因为,随着节点的移动速度加快,网络拓扑变化更快,树结构更容易遭受破坏,需要不断进行链路修复或重新发起路由请求,造成缓存分组丢失或未投递,从而导致分组投递率降低。在图3中,曲线3a为本发明分组投递率,曲线3b为MAODV分组投递率。从图中可以看出,本发明分组投递率明显高于MAODV,这是由于本发明具有备用分支,主路径分支失效后,可以使用备用分支继续传输多播数据分组,从而减少了多播分组丢失的概率,提高分组投递率,改善协议性能。如图4所示,本发明端到端平均传输时延如曲线4a所示,MAODV端到端平均传输时延如曲线4b所示,可以看出,本发明明显低于MAODV,这是由于本发明提供了备用分支,提高了数据分组沿多播树枝的传输效率,在维护树结构的同时,大大减少了由于频繁路由寻找而带来的网络延迟,因而有较好的时延性能。如图5所示,随着节点运动速度的增加,两种算法的控制分组开销逐渐增加。这是因为,根据算法机制,断链修复过程中,请求断链修复的节点在全网中泛洪RREQ_J分组,因而需要大量的控制分组开销。在图5中,曲线5a为本发明的控制分组开销,图5b为MAODV的控制分组开销。从图中可以看出,本发明的控制分组开销明显低于MAODV,由于本发明具有备用分支,主路径分支失效时,可以使用备用路径分支进行多播数据传输,减少了断链修复的过程,因而避免了大量的控制分组泛洪,在建立备用分支的过程中,请求节点只需要多发送一个MACT_B消息给备用分支的下一跳通知其备用路径身份,其开销远小于路由修复过程中的分组泛洪,因而能获得较低的控制分组开销。另一方面,本发明还公开了一种基于网络按需距离矢量多播路由系统,参照图6,包括:分支号分配模块60、主、备路径建立模块62和数据传输模块64。其中,分支号分配模块60用于多播组组长为下游节点分配分支号;主、备路径建立模块62用于基于分支号,多播组成员节点建立各自的主路径和备用路径;数据传输模块64用于判断主路径是否失效,若否,基于主路径进行数据传输;若是,在备用路径没有失效的情况下,使用备用路径进行数据传输;在备用路径失效的情况下,进行路由的修复。参照图7,在一个实施例中,所述主、备路径建立模块和所述数据传输模块之间,还连接有:备用路由表添加模块63A和控制消息修改模块63B。备用路由表添加模块63A用于基于备用路径,添加备用路由表,所述备用路由表用于维护备用路径的信息,包含多播组地址、多播组组长地址、多播组序列号、路由状态、多播树邻居链表及分支号;多播树上每一节点需维护四张路由表,分别为单播路由表、多播路由表、组领导表和备用路由表;控制消息修改模块63B用于修改MACT_J消息,在原MACT_J消息的基础上增加一个B标识,当B标识置1时,即MACT_B消息,新加入多播组的组成员节点利用MACT_B消息通知所选备用路径其备用路径身份。在一个实施例中,分支号分配模块60进一步用于:多播组组长在接收到请求加入多播组的成员节点所发送的RREQ_J消息后,生成一个分支号给请求节点;多播树上的其他节点在响应RREQ_J消息时,将自己所在分支的分支号通过RREP_J消息传递给所述请求节点,所述请求节点从RREP_J消息中获取分支号信息,并将该分支号信息记录在自己的多播路由表中。在一个实施例中,主、备路径建立模块62进一步用于:基于所述四张路由表和修改的所述MACT_J消息,进行备用路径的选择与建立;当请求加入多播组的成员节点接收到RREP_J消息之后,查看所述多播路由表中是否已经存在主路径,如果不存在,则将RREP_J中携带的路径保存为主路径,如果主路径已经存在,则将所述RREP_J消息中携带的路径信息与多播路由表中保存的主路径信息进行比较,比较的内容包括:1)组长地址;2)多播序列号;3)到多播树的跳数;4)到组长的跳数;上述内容按从上到下优先级递减的顺序进行比较,以组长地址较大、多播序列号较大、到多播树跳数较少、到组长的跳数较少为较优信息;如果RREP_J消息中携带的信息优于主路径,则将RREP_J保存为新的主路径,将原来的主路径保存为备用路径;同时,若原来存在备用路径,则删除该备用路径;如果主路径的信息较优,则判断RREP_J消息中携带的分支号与主路径中是否相同,相同则将RREP_J消息丢弃;如果不相同,则查看备用路由表是否为空,如果为空,则将RREP_J消息的传播路径保存为备用路径,否则将RREP_J消息与备用分支信息进行比较;如果RREP_J消息携带信息较优,则将RREP_J消息保存为备用路径,同时删除原备用路径,否则将RREP_J消息丢弃;RREP_J等待时间到期后,节点向主路径分支反向单播一个MACT_J消息,用于激活主路径分支,进行多播数据传输,同时向备用路径分支反向单播一个MACT_B消息,用于通知备用路径的节点保存备用路径信息;MACT_J消息将主路径激活开始数据传输,而MACT_B消息通知备用路径上的节点存储备用路径信息,以备主路径失效时备用路径的激活使用。以上对本发明所提供的一种基于网络按需距离矢量多播路由方法及系统进行详细介绍,本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上,本说明书内容不应理解为对本发明的限制。